package com.zsrt.java.day20161227.lh.homework.demo05;

import java.util.Arrays;

import com.zsrt.java.day20161227.lh.homework.util.ArrayUtil;

/**
 * 题目：   5张    3张牌加起来等于10的倍数   就说明有牛    剩下的2张牌 加起来 根10 求模    5 
 * 
 * 已知：
 * 		1.6个人玩
 * 		2.3张牌加起来等于10的倍数   就说明有牛
 * 		3.剩下的2张牌 加起来 求模
 * 
 * 求：
 * 	1.河牌有什么牌
 *  2.每一个人分别拿了什么牌  并且有没有牛  
 *  		如果没有牛 请你告诉我最大的牌是什么   黑 红 梅 方
 *  		如果没有牛 请你告诉我是几    10 牛牛
 *  3.谁赢了
 *  
 *  思路：
 *  	1.一个数组表示组牌
 *  	2.6个玩家  6个数组 ，随机数拿牌
 *  	3.定义  分离牌面数字(charAt(0))
 *  	4.数组中5个数中取三个相加求模     12345  123 124 125  234  235  345  
 * 
 * @author My
 *
 */
public class BullFight {
	
	public static void main(String[] args) {
		String[] pai=null;
		String[] xz={"黑","桃","梅","方"};
		String[] sz={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
		String st="";
		String[] wanjia01=new String[5];
		String[] wanjia02=new String[5];
		String[] wanjia03=new String[5];
		String[] wanjia04=new String[5];
		String[] wanjia05=new String[5];
		String[] wanjia06=new String[5];
		
		StringBuffer sf=new StringBuffer();

		
		//生成牌
		for(int i=0;i<4;i++){
			String stb=xz[i];
			for(int j=0;j<13;j++){
				String sts=sz[j];
				st=stb+sts+",";
				sf.append(st);
			}
		}
		pai=sf.toString().split(",");
		
		//玩家拿牌
		for(int i=0;i<5;i++){
			int random=(int)Math.floor(Math.random()*(52-i));
			wanjia01[i]=pai[random];
			pai=ArrayUtil.deleteArray(pai, pai[random]);
			
		}
		System.out.println("wanjia01的牌："+Arrays.toString(wanjia01));
		
		
		//玩家拿牌
		for(int i=0;i<5;i++){
			int random=(int)Math.floor(Math.random()*(52-5-i));
			wanjia02[i]=pai[random];
			pai=ArrayUtil.deleteArray(pai, pai[random]);
			
		}
		System.out.println("wanjia02的牌："+Arrays.toString(wanjia02));
		
		//玩家拿牌
		for(int i=0;i<5;i++){
			int random=(int)Math.floor(Math.random()*(52-10-i));
			wanjia03[i]=pai[random];
			pai=ArrayUtil.deleteArray(pai, pai[random]);
			
		}
		System.out.println("wanjia03的牌："+Arrays.toString(wanjia03));
		
		//玩家拿牌
		for(int i=0;i<5;i++){
			int random=(int)Math.floor(Math.random()*(52-15-i));
			wanjia04[i]=pai[random];
			pai=ArrayUtil.deleteArray(pai, pai[random]);
			
		}
		System.out.println("wanjia04的牌："+Arrays.toString(wanjia04));
		
		//玩家拿牌
		for(int i=0;i<5;i++){
			int random=(int)Math.floor(Math.random()*(52-20-i));
			wanjia05[i]=pai[random];
			pai=ArrayUtil.deleteArray(pai, pai[random]);
			
		}
		System.out.println("wanjia05的牌："+Arrays.toString(wanjia05));
		
		//玩家拿牌
		for(int i=0;i<5;i++){
			int random=(int)Math.floor(Math.random()*(52-25-i));
			wanjia06[i]=pai[random];
			pai=ArrayUtil.deleteArray(pai, pai[random]);
			
		}
		System.out.println("wanjia06的牌："+Arrays.toString(wanjia06));
		System.out.println("河牌："+Arrays.toString(pai));
		
		
	
		//字符串分解 charAt();
		
		
	
		
		char[] hs=new char[5];
		char[] fjsz=new char[5];
		
		int[] newsz=new int[5];
		
		//数字
		fjsz=fenlisz(wanjia01);
		//花色
		hs=fenlihs(wanjia01);
		
		//拿到玩家牌面数组
		int[] wjpm=shuzizhuanghua(fjsz);
		
//		System.out.println(Arrays.toString(a));
		
		
		}
	
	
	
	
	
	
	
	
	
	/**
	 * 将玩家的牌转换成数字
	 * @param wanjiapai  玩家的手牌 分离后的数字部分
	 * @return   数字部分转换为 1~10的数组牌
	 */
	public static int[] shuzizhuanghua(char[] wanjiapai){
		/*char[] hs=new char[5];
		char[] fjsz=new char[5];*/
		
		int[] newsz=new int[5];
		for(int i=0;i<5;i++){
			newsz[i]=shuzizhuanhua(wanjiapai[i]);
		}
		return newsz;
	}
	

	/**
	 * 取出花色
	 * @param wanjia01
	 */
	public static char[] fenlihs(String[] wanjia01) {
		char[] hs=new char[5];
		for(int i=0;i<5;i++){
			hs[i]=wanjia01[i].charAt(0);
		}
		return hs;
	}
	
	/**
	 * 取出数字
	 * @param wanjia01
	 */
	public static char[] fenlisz(String[] wanjia01) {
		char[] fjsz=new char[5];
		for(int i=0;i<5;i++){
			fjsz[i]=wanjia01[i].charAt(1);
		}
		return fjsz;
	}
	
	/**
	 * 
	 * @param a 牌点数的数组
	 * @return
	 */
	public static int shuzizhuanhua(int a){
		int ds=0;
		switch ((char)a) {
		case 'A':ds=1;break;
		case '1':ds=10;break;
		case 'J':ds=10;break;
		case 'Q':ds=10;break;
		case '2':ds=2;break;
		case '3':ds=3;break;
		case '4':ds=4;break;
		case '5':ds=5;break;
		case '6':ds=6;break;
		case '7':ds=7;break;
		case '8':ds=8;break;
		case '9':ds=9;break;
		case 'k':ds=10;break;
		
		}
		
		return ds;
	}

	/**
	 * 
	 * @param a 牌面花色
	 * @return
	 */
	public static int huasezhuanhua(char a){
		int ds=0;
		switch (a) {
		case '黑':ds=4;break;
		case '桃':ds=3;break;
		case '梅':ds=2;break;
		case '方':ds=1;break;
		default:ds=a;break;
		}
		
		return ds;
	}
}
